/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package at.fhj.itm.generator;

import at.fhj.itm.metadata.Column;
import at.fhj.itm.metadata.Constraint;
import at.fhj.itm.metadata.Index;
import at.fhj.itm.metadata.Procedure;
import at.fhj.itm.metadata.Schema;
import at.fhj.itm.metadata.Sequence;

import at.fhj.itm.metadata.Table;
import java.util.List;

/**
 *
 * @author Seuchter
 */
public interface SqlCodeGenerator  {

    public String getSqlDialect();

    public String generateSchema(final Schema schema);

    public String generateTable(final Table table);
    public String generateColumn(final Column column);
    public String generateIndex(final Index index);

    public String generateConstraint(final Constraint constraint);

    String generateProcedure(Procedure proc);

    String generateSequence(Sequence seq);

    String generateForeignKeyConstraints(List<? extends Table> tables);

    String generateInsertStatement(Table target,ColumnValueMapping<Column, String> mappings);
}
